package com.ruoyi.depot.service;

import com.ruoyi.common.core.domain.ProductCates;
import com.ruoyi.common.core.domain.TreeSelect;
import com.ruoyi.common.core.domain.depot.Monetary;

import java.util.List;

/**
 * 货币单位Service接口
 * 
 * @author ruoyi
 * @date 2023-11-02
 */
public interface IMonetaryService 
{
    /**
     * 查询货币单位
     * 
     * @param monetaryId 货币单位主键
     * @return 货币单位
     */
    public Monetary selectMonetaryByMonetaryId(Long monetaryId);

    /**
     * 查询货币单位列表
     * 
     * @param monetary 货币单位
     * @return 货币单位集合
     */
    public List<Monetary> selectMonetaryList(Monetary monetary);

    /**
     * 新增货币单位
     * 
     * @param monetary 货币单位
     * @return 结果
     */
    public int insertMonetary(Monetary monetary);

    /**
     * 修改货币单位
     * 
     * @param monetary 货币单位
     * @return 结果
     */
    public int updateMonetary(Monetary monetary);

    /**
     * 批量删除货币单位
     * 
     * @param monetaryIds 需要删除的货币单位主键集合
     * @return 结果
     */
    public int deleteMonetaryByMonetaryIds(Long[] monetaryIds);

    /**
     * 删除货币单位信息
     * 
     * @param monetaryId 货币单位主键
     * @return 结果
     */
    public int deleteMonetaryByMonetaryId(Long monetaryId);

    /**
     * 查询货币树结构信息
     * @param monetary 货币信息
     * @return 货币树信息集合
     */
    public List<TreeSelect> selectMonetaryTreeList(Monetary monetary);

    /**
     * 构建前端所需要树结构
     *
     * @param monetaryList 货币列表
     * @return 树结构列表
     */
    public List<Monetary> buildMonetaryTree(List<Monetary> monetaryList);

    /**
     * 构建前端所需要下拉树结构
     *
     * @param monetaryList 货币列表
     * @return 下拉树结构列表
     */
    public List<TreeSelect> buildMonetaryTreeSelect(List<Monetary> monetaryList);
}
